home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / OS / FWOSMisc / FWVersn.cpp < prev    next >
Encoding:
Text File  |  1996-09-17  |  1.5 KB  |  42 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWVersn.cpp
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Author:                Damon Cokenias
  7. //
  8. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  9. //
  10. //========================================================================================
  11.  
  12. #ifndef FWVERSN_H
  13. #include "FWVersn.h"
  14. #endif
  15.  
  16. //----------------------------------------------------------------------------------------
  17. // FW_UnpackVersion
  18. //----------------------------------------------------------------------------------------
  19. void FW_UnpackVersion (FW_Version version, char& major, char& minor, char& fix,
  20.         char& internal, FW_EVersionStage& stage)
  21. {
  22.     internal = (version & 0x0F) + ((version & 0xF0) >> 8) * 10;
  23.     stage = (FW_EVersionStage) ((version >> 8) & 0xFF);
  24.     FW_ASSERT (stage == FW_kDevelopment || stage == FW_kAlpha || stage == FW_kBeta ||
  25.             stage == FW_kFinal);
  26.     
  27.     fix = (version & 0x000F0000) >> 16;
  28.     minor = (version & 0x00F00000) >> 20;
  29.     major = (version & 0x0F000000) >> 24 + ((version & 0xF0000000) >> 28) * 10;
  30.  
  31. }
  32.  
  33. //----------------------------------------------------------------------------------------
  34. // FW_PackVersion
  35. //----------------------------------------------------------------------------------------
  36. FW_Version FW_PackVersion (char major, char minor, char fix, char internal,
  37.         FW_EVersionStage stage)
  38. {
  39.     return ((major / 10) << 28) | ((major % 10) << 24) | ((minor % 10) << 20) |
  40.             ((fix % 10) << 16) | (stage << 8) | (internal % 10);
  41. }
  42.